luci-base: http.uc: fix invoking Lua file upload callbacks
authorJo-Philipp Wich <[email protected]>
Wed, 2 Nov 2022 08:04:25 +0000 (09:04 +0100)
committerJo-Philipp Wich <[email protected]>
Wed, 2 Nov 2022 08:08:16 +0000 (09:08 +0100)
In case a callback is installed from Lua code, the received callback
argument is not a callable function but a resource object with a call
method. Attempts to call it will leading to a `Type error: left-hand
side is not a function` error.

To solve this issue, invoke the internally set filehandler instead
which wraps the resource if needed.

Fixes: #6067
Signed-off-by: Jo-Philipp Wich <[email protected]>
modules/luci-base/ucode/http.uc

index b464497eacb7bf63904f73de18dcf192006660de..4856c47a0d6fb68c275502559028e5bbd874a33d 100644 (file)
@@ -432,7 +432,7 @@ const Class = {
                                let data = value.fd.read(1024);
                                let eof = (data == null || data == '');
 
-                               callback(value, data, eof);
+                               this.filehandler(value, data, eof);
 
                                if (eof) {
                                        value.fd.close();